/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package negocio;

import java.sql.Connection;
import java.util.List;
import persistencia.PersistenciaFachada;

/**
 *
 * @author v3550
 */
public class NegocioFachada {

    PersistenciaFachada controlador = null;
    

    public NegocioFachada() {
        controlador = new PersistenciaFachada();
    }



    public Connection setarConexao(String user, String pass, String host, String port, String sid) throws Exception {

        if (user.equals("") || pass.equals("") || host.equals("") || port.equals("") || sid.equals("")) {
            throw new IllegalArgumentException("Por favor preencher todos os campos");
        }

        return controlador.setConexao(user, pass, host, port, sid);
    }

    public List<Tabela> getTabelas(String owner) throws Exception{
        return  controlador.getListaTabelas(owner);
    }
    
    public List<String> getListaOwners() throws Exception{
        return  controlador.getListaOwner();
    }

    public void fecharConexao() throws Exception {
        controlador.fecharConexao();
    }

    public List<Coluna> getColunas(String owner, String table) throws Exception{
        return  controlador.getColunas(owner,table);
    }
    
    public Tabela recuperarDicionario(String owner, String tabela) throws Exception
    {
        return controlador.recuperarDicionario(owner, tabela);
    }

    public boolean gravarNoDicionario(String tabela, String owner, Integer linhaInicial, float taxaCrescimento, Integer reterDados, List<Coluna> list)  throws Exception{
        
        if(reterDados < 5)
            throw new IllegalArgumentException("Tempo de retenção de dados deve ser no mínimo 5 anos");
        
        Tabela d = new Tabela(tabela, owner);
        d.setLinhaEstimadoIncial(linhaInicial);
        d.setTaxaCrescimentoAnual(taxaCrescimento);
        d.setReterDados(reterDados);
        d.setListDeColunas(list);
       
        return controlador.gravarNoDicionario(d);
    }
    
    public void calculoVolumetrico(String owner) throws Exception
    {
        controlador.calculoVolumetrico(owner);
    }
}
